package br.com.sisat.service;

import java.sql.Connection;
import java.util.List;

import br.com.sisat.exception.ServiceException;
import br.com.sisat.modelo.EspecialidadeDTO;
import br.com.sisat.modelo.TerapeutaDTO;
import br.com.sisat.persistencia.DAO.TerapeutaDAO;
import br.com.sisat.persistencia.conexao.ConnectionProvider;
import br.com.sisat.util.ObjectUtil;

public class TerapeutaService {

	private static TerapeutaService service;
	
	public static TerapeutaService getInstance(){
		if(ObjectUtil.isEmpty(service)){
			service = new TerapeutaService();
		}
		return service;
	}
	
	public List<EspecialidadeDTO> recuperarEspecialidades() {
		try {
			return TerapeutaDAO.getInstance().recuperarEspecialidades();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	public List<TerapeutaDTO> recuperarTerapeutas() {
		try {
			return TerapeutaDAO.getInstance().recuperarTerapeutas();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	public List<TerapeutaDTO> executarConsulta(TerapeutaDTO terapeutaDTO) {
		try {
			return TerapeutaDAO.getInstance().executarConsultar(terapeutaDTO);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	public void executarExcluir(TerapeutaDTO terapeutaDTO) {
		try {
			TerapeutaDAO.getInstance().executarExcluir(terapeutaDTO);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public void executarAlterar(TerapeutaDTO terapeutaDTO) {
		try {
			TerapeutaDAO.getInstance().executarAlterar(terapeutaDTO);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public void executarIncluir(TerapeutaDTO terapeutaDTO) {
		Connection conn = null;
		try {
			conn = ConnectionProvider.getDefaultConnection();
			TerapeutaDAO.getInstance().executarIncluir(terapeutaDTO);
		} catch (Exception e) {
			e.printStackTrace();
		}
		try {
			ConnectionProvider.fechaConexao(conn);
		} catch (ServiceException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
}
